import COS from 'cos-wx-sdk-v5'

let key = 'h7G8k47tPecJjtlMgkX4KK3UeX9UYLr6'
// 配置
const cosConfig = {
	Bucket: 'tousubiaoyang-1301970825',
	Region: 'ap-nanjing',
	Domain: ''
}

let cos = new COS({
	getAuthorization: async function(options, callback) {
		/**
		 * 签名计算放在前端会暴露 SecretId 和 SecretKey
		 * 我们把签名计算过程放在后端实现，前端通过 ajax 向后端获取签名结果
		 * 正式部署时请再后端加一层自己网站本身的权限检验。
		 * 异步获取临时密钥
		 */
		let token = uni.getStorageSync('token');
		let header = {
			'content-type': 'application/x-www-form-urlencoded',
			'Authorization': token,
		}
		uni.request({
			method: 'post',
			url: "https://state.renruikeji.cn/api/vs/backend/bucket/getUrl", //java 正式
			data: {},
			header: header,
			success: function(res) {
				if (res.data.code !== 0) {
					uni.showToast({
						title: res.data.message,
						icon: 'none'
					})
					return false
				}
				const authdata = res.data.data
				const auth = {
					TmpSecretId: authdata.tmpSecretId,
					TmpSecretKey: authdata.tmpSecretKey,
					XCosSecurityToken: authdata.sessionToken,
					ExpiredTime: authdata.expiredTime, // 在ExpiredTime时间前，不会再次调用getAuthorization
				}
				callback(auth)
			}
		})
	},
	FileParallelLimit: 9, // 文件并发数
	ChunkParallelLimit: 8, // 同一个上传文件的分块并发数
	ChunkSize: 1024 * 1024 * 8 // 分块上传时，每块的字节数大小
})
export function uploadFile2(file, name,size, progress) {
	return new Promise((resolve, reject) => {
		let path = "/wxApp/cc/" + new Date().getTime() + (Math.floor(Math.random() * 10000)) + "/" + name
		cos.uploadFile({
			Bucket: cosConfig.Bucket, /* 必须 */
			Region: cosConfig.Region,     /* 存储桶所在地域，必须字段 */
			Key: path,              /* 必须 */
			FilePath: file,                /* 必须 */
			FileSize: size,                 /* v1.4.3之前的版本必须，v1.4.3及以后的版本非必须 */
			SliceSize: 1024 * 1024 * 20,     /* 触发分块上传的阈值，超过5MB使用分块上传，非必须，按需调整，最小支持1MB */
			onTaskReady: function(taskId) {                   /* 非必须 */
				console.log(taskId,'renwuid');
			},
			onProgress: function (progressData) {           /* 非必须 */
				console.log(JSON.stringify(progressData));
				progress(progressData)
			},
			onFileFinish: function (err, data, options) {   /* 非必须 */
				console.log(options.Key + '上传' + (err ? '失败' : '完成'));
			},
			// 支持自定义headers 非必须
			Headers: {
				'x-cos-meta-test': 123
			},
		}, function(err, data) {
			return resolve(err || data)
		});

	})
}
